/**
 * 工具对象
 */
const utils = {
  /**
   *  消息提示方法
   * @param {string} title 提示的文本内容
   */
  toast(title = '数据加载失败...') {
    wx.showToast({
      title,
      icon: 'none',
      mask: true,
    })
  },
  /**
   * 手机号格式校验
   * @param {*} mobile
   */
  verifyMobile(mobile) {
    // 1. 正则表达式
    const reg = /^1[3-9]\d{9}$/
    // 2. 正则校验
    const flag = reg.test(mobile.trim())
    // 3. 判断结果
    if (!flag) wx.utils.toast('手机号格式不正确')
    // 4. 返回结果
    return flag
  },
  /**
   * 校验验证码
   * @param { string } code
   */
  verifyCode(code) {
    const reg = /^\d{6}$/
    const flag = reg.test(code.trim())
    if (!flag) wx.utils.toast('验证码不正确')
    return flag
  },
  verifyName(name) {
    const reg = /^[\u4e00-\u9fa5]{2,5}$/
    const flag = reg.test(name.trim())
    if (!flag) wx.utils.toast('输入姓名有误!')
    return flag
  },
  verifyPicture(idcardFrontUrl, idcardBackUrl) {
    const flag = !!idcardFrontUrl && !!idcardBackUrl
    if (!flag) wx.utils.toast('请上传完整身份证照片!')
    return flag
  },
  verifyHouse(houseId) {
    const valid = houseId !== ''
    // 验证结果提示
    if (!valid) wx.utils.toast('请选择房屋信息!')
    // 返回验证结果
    return valid
  },
  verifyRepair(repairItemId) {
    const valid = repairItemId !== ''
    // 验证结果提示
    if (!valid) wx.utils.toast('请选择维修项目!')
    // 返回验证结果
    return valid
  },
  verifyDate(appointment) {
    // 验证日期格式
    const reg = /^\d{4}\/\d{2}\/\d{2}$/
    const valid = reg.test(appointment)
    // 验证结果提示
    if (!valid) wx.utils.toast('请选择预约日期!')
    // 返回验证结果
    return valid
  },
  verifyDescription(description) {
    // 验证报修项目描述
    const valid = description.trim() !== ''
    // 验证结果提示
    if (!valid) wx.utils.toast('请填写问题描述!')
    // 返回验证结果
    return valid
  },
  // 2. 根据时间戳格式化日期
  formatDate(timeStamp) {
    const date = new Date(timeStamp)
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    return [year, month, day].map(this.formatNumber).join('/')
  },
  formatNumber(n) {
    const s = n.toString()
    return s[1] ? s : '0' + s
  },
}

/**
 * 把utils工具对象挂载到了全局wx对象上
 */
wx.utils = utils

/**
 * 默认导出工具对象
 */
export default utils
